package br.ifpi.leds.educmanager.control;

import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import br.ifpi.leds.educmanager.dao.ProfessorDAO;
import br.ifpi.leds.educmanager.model.Disciplina;
import br.ifpi.leds.educmanager.model.Professor;

@ManagedBean(name="professorBean")
@RequestScoped
public class ProfessorControl {
	
	private Professor professor;
	
	public ProfessorControl() {
		this.professor = new Professor();
	}
	
	public Professor getProfessor() {
		return professor;
	}

	public void setProfessor(Professor professor) {
		this.professor = professor;
	}

	public String salvar() {
		ProfessorDAO professorDAO = new ProfessorDAO();
		professorDAO.salvar(professor);
		return "PROFESSOR_CADASTRO_SUCESSO";
	}
	
	public String atualizar() {
		ProfessorDAO professorDAO = new ProfessorDAO();
		professorDAO.atualizar(professor);
		return "PROFESSOR_ATUALIZACAO_SUCESSO";
	}
	
	public List<Professor> recuperarTodos() {
		ProfessorDAO professorDAO = new ProfessorDAO();
		return professorDAO.recuperarLista();
	}
	
	/**
	 * Associaa uma disciplina a um professor
	 * @param disciplina disciplina a ser adicionada à lista de disciplinas
	 * ministradas pelo professor
	 * @return o valor de navegacao associado ao cadastro com sucesso ou de falha
	 */
	public void adicionarDisciplina(Disciplina disciplina) {
		professor.getDisciplinas().add(disciplina);
		disciplina.setProfessor(professor);
		
		DisciplinaControl disciplinaControl = new DisciplinaControl();
		disciplinaControl.setDisciplina(disciplina);
		disciplinaControl.atualizar();
		
		atualizar();
	}
}
